This invention relates to computer messaging systems which exchange messages between users. It is particularly concerned with conversational trading systems for trading fungibles such as financial instruments.
Conversational dealing systems allow the parties involved to exchange messages across a computer network. These messages may be simple chat or may include trade related information. Typically, the dealing system analyzes the messages to pick up deal related information. Deals are agreed between the parties in an exchange of messages and completed deals are detected from the message text by the system and logged.
Conversational systems may allow simplex or duplex chat. Duplex chat allows all parties involved in the conversation to have equal and simultaneous control of the conversation. Simplex chat only allows one person to have control of the conversation at any time.
Typically, in a duplex system messages passed between trader work stations pass through a chat server which logs the messages in the order in which they are received at the workstation. The purpose of this is to guarantee that both parties to the conversation see the same messages on their screen in the order in which the messages are captured in the log.
When the chat server receives a message from any trader, and passes that message onto the intended destination trader, it sends an acknowledgment to the sending trader workstation.
This duplex chat model with a chat server logging messages in order of receipt is highly advantageous and offers a number of advantages over competing systems. However, a particular problem can arise which relates to the timing of messages sent from various parties on the system. As a duplex chat system allows all parties to type and send their messages from their workstations at the same time, the possibility arises that a reply message will be sent from a second workstation in response to a message from a first workstation at about the same time as a further message is sent from the first workstation. When the reply message arrives at the first workstation it appears to the first workstation as if is a reply to the second, not the first message. This problem, which is a technical problem caused partly by the nature of the duplex chat system and partly by the timing of messages sent between workstations via at least one server, can have potentially catastrophic consequences.
Consider the following example of a conversation over a duplex chat system between two traders. Trader A sends “how are you?” to Trader B. Trader B reads the message and starts to type “ok” in response. Before he has sent this message, Trader A, without waiting for a reply to his original message, sends “You buy 100M USD@1.86”. This is an offer to Trader B to buy $100 million at an exchange rate of 1.86. Before this message is received at Trader B, that trader sends the “ok” message in reply to the previous message from Trader A. Both Trader A and Trader B see on their screen the following sequence of messages: “How are you?; You buy 100M USD@1.86.; OK.” The chat server, which handles the exchange of messages also logs the message in that sequence, the sequence at which they were received at the server.
Thus, in the above sequence, the system, and Trader A, think that Trader B has agreed to the proposed trade where, in fact, he has merely commented to Trader A on his well being. Clearly, a trader can take advantage in this flaw in the duplex chat system to act maliciously.
We have appreciated that this problem is especially dangerous as there is no mechanism available to the trader to indicate to which message he is responding and the system does not detect to which message from Trader A, Trader B is responding. There is, therefore, a need in the art for a duplex chat system which can analyze an exchange of messages and ensure that messages and replies are correctly matched.